/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucsur.tp.colegio.daos;

import edu.ucsur.tp.colegio.beans.DistritoBean;
import edu.ucsur.tp.colegio.beans.ProvinciaBean;
import edu.ucsur.tp.colegio.beans.RegionBean;
import edu.ucsur.tp.colegio.beans.SedeBean;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import edu.ucsur.tp.colegio.connections.DBConnection;

/**
 *
 * @author Administrador
 */
public class MySqlSedeSchoolDao {
    
    SedeBean getSede (String codigosede){
        
         String sql = "SELECT * FROM sede WHERE codigosede = ?";
     
     try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los par�metros din�micos
      pstmt.setString(1, codigosede);
      //3. Ejecutar la sentencia (se recupera en un cursor)
      ResultSet rs = pstmt.executeQuery();
      //4. Recorriendo el cursor
      if (rs.next()) {
        SedeBean sede = new SedeBean();
        
        sede.setCodigosede(rs.getString("codigosede"));
        sede.setSede(rs.getString("Sede"));
        sede.setDireccion(rs.getString("direccion"));
        sede.setTelefono(rs.getString("telefono"));
        sede.setFax(rs.getString("fax"));
        sede.setProvincia(new ProvinciaBean(rs.getString("codigoprovincia"), "codigoprovincia"));
        sede.setRegion(new RegionBean(rs.getString("codigoregion"), "codigoregion"));
        sede.setDistrito(new DistritoBean(rs.getString("codigodistrito"), "codigodistrito"));
        sede.setEmail(rs.getString("email"));
        return sede;
      }
      //5. Cerrando los recursos JDBC
      rs.close();
      pstmt.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
    return null;
           
    }
    
    // public List<AlumnoBean>
    
     public List<SedeBean> getListaSedePorFiltros(String filtroSede) {
    List<SedeBean> listaSede = new ArrayList<SedeBean>();
    
    String sql = "SELECT * FROM sede WHERE Sede like ? ";
    try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los par�metros din�micos
      pstmt.setString(1, "%" + filtroSede + "%");
      //3. Ejecutar la sentencia (se recupera en un cursor)
      ResultSet rs = pstmt.executeQuery();
      //4. Recorriendo el cursor
      while (rs.next()) {
        SedeBean sede = new SedeBean();
        sede.setCodigosede(rs.getString("codigosede"));
        sede.setSede(rs.getString("Sede"));
        sede.setDireccion(rs.getString("direccion"));
        sede.setTelefono(rs.getString("telefono"));
        sede.setFax(rs.getString("fax"));
        sede.setProvincia(new ProvinciaBean(rs.getString("codigoprovincia"), "codigoprovincia"));
        sede.setRegion(new RegionBean(rs.getString("codigoregion"), "codigoregion"));
        sede.setDistrito(new DistritoBean(rs.getString("codigodistrito"), "codigodistrito"));
        sede.setEmail(rs.getString("email"));
        listaSede.add(sede);
      }
      //5. Cerrando los recursos JDBC
      rs.close();
      pstmt.close();
      conn.close();
      //6. Devolver la lista
      return listaSede;
    } catch (Exception ex) {
      ex.printStackTrace();
    }
    return null;
  }
    
    public void insertar(SedeBean sede) {
    String sql = "INSERT INTO sede ( codigosede, Sede, direccion, telefono, fax, email ) ";
    sql += " VALUES ( ?, ?, ?, ?, ?, ? ) ";
    try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los par�metros din�micos
      pstmt.setString(1, sede.getCodigosede());
      pstmt.setString(2, sede.getSede());
      pstmt.setString(3, sede.getDireccion());
      pstmt.setString(4, sede.getTelefono());
      pstmt.setString(5, sede.getFax());
      pstmt.setString(6, sede.getEmail());
      //3. Ejecutar la sentencia (se recupera en un cursor)
      pstmt.executeUpdate();
      //7. Cerrando los recursos JDBC
      pstmt.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  } 
    
    public void eliminar(String codigosede) {
    String sql = "DELETE FROM sede WHERE codigosede = ? ";
    try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los par�metros din�micos
      pstmt.setString(1, codigosede);
      //3. Ejecutar la sentencia (se recupera en un cursor)
      pstmt.executeUpdate();
      //7. Cerrando los recursos JDBC
      pstmt.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  } 
    
    public void actualizar(SedeBean sede) {
    String sql = "UPDATE sede SET codigosede = ?, Sede = ?, direccion = ?, telefono = ?, fax = ?, email = ? ";
    try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los parametros dinamicos
      pstmt.setString(1, sede.getCodigosede());
      pstmt.setString(2, sede.getSede());
      pstmt.setString(3, sede.getDireccion());
      pstmt.setString(4, sede.getTelefono());
      pstmt.setString(6, sede.getFax());
      pstmt.setString(7, sede.getEmail());
      //3. Ejecutar la sentencia (se recupera en un cursor)
      pstmt.executeUpdate();
      //7. Cerrando los recursos JDBC
      pstmt.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    } 
   }  
    
        
}
